For certain communication systems, network packets are communicated using GTP (GPRS (General Packet Radio Service) Tunneling Protocol) packets. User equipment (UE), such as mobile cellular handsets, can have multiple active sessions at a time. To manage these GTP communication sessions, it is often desirable to have visibility into what sessions are active for each UE. For example, a network monitoring tool may desired to receive all packets associated with a particular user. Tracking active sessions, however, is difficult because sessions are constantly being created and torn down.
GTP packets are often classified by their F-TEID. An F-TEID is a combination of the destination IP address and the GTP tunnel endpoint identifier (TEID) included within the GTP packet. The F-TEID can be used to determine to which user session a GTP packet belongs. However, because F-TEIDs are dynamically allocated and will change over time, an F-TEID can be used by one session for one user and can later be re-used by a different session for a different user. As such, it is difficult over time to determine which packets should be associated with which user sessions based upon F-TEIDs.
A GTP sessions controller (GSC) can be used to identify and track user sessions and related F-TEIDs so that packets associated with a user session can be forwarded to a common network monitoring tool. To achieve this result, a GSC typically receives all of the control packets (GTP-C) and user packets (GTP-U) associated with a user to correctly track changes to sessions and determine which F-TEIDs are associated with which user sessions. As a GSC will typically have a limited capacity in terms of users and sessions, communication systems with large numbers of users may require multiple GSCs to track packets and sessions for these users. However, because F-TEIDs are dynamically allocated and change over time, the use of multiple GSCs creates significant problems with respect to making sure all packets associated with a particular user are received by the appropriate GSC so that this GSC can be forward these user packets to the same network monitoring tool.
One solution to this problem is to forward all incoming GTP packets to each GSC being used within a system of multiple GSCs. As such, each GSC can then identify GTP packets having F-TEIDs associated with sessions for users it is tracking and can discard GPT packets having F-TEIDs for other non-tracked sessions. However, this solution creates large volumes of redundant packet traffic as each GSC must receive all of the GTP packets. As such, this solution does not scale efficiently.